package com.qk.task;

import com.qk.util.AliyunOSSOperator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @Author: zhangchuang
 * @Date: 2025/10/11 21:27
 * @Description:
 */
@Slf4j
@Component
@SuppressWarnings("all")
public class AliyunOSSCleanupTask {

    @Autowired
    private AliyunOSSOperator aliyunOSSOperator;


    /**
     * 每天凌晨2点执行清理（推荐）
     * 这个时间访问量较少，对业务影响最小
     */
    @Scheduled(cron = "0 0 2 * * ?")
    public void dailyCleanup() {
        log.info("=== 开始执行每日OSS清理任务 ===");

        // 先打印统计信息
//        aliyunOSSOperator.printOssStatistics();

        // 执行清理
//        aliyunOSSOperator.executeCleanup();

        // 清理后再次打印统计信息
//        aliyunOSSOperator.printOssStatistics();

        log.info("=== 每日OSS清理任务完成 ===");
    }

    /**
     * 每周日凌晨3点执行（可选）
     * 可以执行更彻底的清理
     */
    @Scheduled(cron = "0 0 3 ? * SUN")
    public void weeklyCleanup() {
        log.info("=== 开始执行每周OSS清理任务 ===");
//        aliyunOSSOperator.executeCleanup();
        log.info("=== 每周OSS清理任务完成 ===");
    }

    /**
     * 每小时执行临时文件清理（可选）
     * 只清理临时目录中1小时前的文件
     */
    // @Scheduled(cron = "0 0 * * * ?")
    public void hourlyTempCleanup() {
        log.info("执行每小时临时文件清理");
        // 可以在这里调用专门清理临时文件的方法
    }

}
